package com.michale.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.michale.common.domain.system.DictDataEntity;
import io.swagger.annotations.Api;

import java.util.List;

/**
 * @author Michale
 * @apiNote 字典数据表 业务层
 */
@Api(value = "字典数据表-服务类")
public interface DictDataService extends IService<DictDataEntity> {

    /**
     * 根据条件分页查询字典数据
     *
     * @param dictDataEntity 字典数据信息
     * @return 字典数据集合信息
     */
    List<DictDataEntity> selectDictDataList(DictDataEntity dictDataEntity);

    /**
     * 根据字典类型和字典键值查询字典数据信息
     *
     * @param dictType  字典类型
     * @param dictValue 字典键值
     * @return 字典标签
     */
    String selectDictLabel(String dictType, String dictValue);

    /**
     * 根据字典数据ID查询信息
     *
     * @param dictDataEntity 字典数据ID
     * @return 字典数据
     */
    DictDataEntity selectDictDataById(Long dictDataEntity);

    /**
     * 批量删除字典数据信息
     *
     * @param dictCodes 需要删除的字典数据ID
     */
    void deleteDictDataByIds(Long[] dictCodes);

    /**
     * 新增保存字典数据信息
     *
     * @param dictDataEntity 字典数据信息
     * @return 结果
     */
    int insertDictData(DictDataEntity dictDataEntity);

    /**
     * 修改保存字典数据信息
     *
     * @param dictDataEntity 字典数据信息
     * @return 结果
     */
    int updateDictData(DictDataEntity dictDataEntity);

    /**
     * 根据字典类型查询字典数据信息
     *
     * @param dictTypeEntity 字典类型
     * @return 字典数据信息集合
     */
    List<DictDataEntity> selectDictDataByType(String dictTypeEntity);
}

